package com.mercycrazy.springframework.beans.factory;

import com.mercycrazy.springframework.beans.BeansException;
import com.mercycrazy.springframework.beans.factory.config.AutowireCapableBeanFactory;
import com.mercycrazy.springframework.beans.factory.config.BeanDefinition;
import com.mercycrazy.springframework.beans.factory.config.ConfigurableBeanFactory;

/**
 * 提供分析和修改 Bean 对象与预先实例化的接口
 *
 * @author <a href="mailto:1443424326@qq.com">mercycrazy</a>
 * @since 2022-11-26
 */
public interface ConfigurableListableBeanFactory
        extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;
}
